package com.zhang.sort.cmp;


import com.zhang.sort.Sort;

/**
 * @author 张吉鑫
 * @Description 冒泡排序
 * @date 2021/4/11 10:31
 */
public class BubbleSort3 extends Sort {
    /**
     * 冒牌排序优化版
     * 如果序列尾部已经局部有序，可以记录最后1次交换的位置，减少比较次数
     */
    @Override
    protected void sort() {
        for (int i = array.length - 2; i > 0; i--) {
            int index = 0;
            for (int j = 0; j <= i; j++) {
                if (cmp(j,j + 1) > 0) {
                    swap(j, j + 1);
                    index = j;
                }
            }
            i = index;
        }
    }
}
